/*
 * 1443. 最长AB子串
 * 给你一个只由字母'A'和'B'组成的字符串s，找一个最长的子串，要求这个子串里面'A'和'B'的数目相等，输出该子串的长度。
 * https://www.lintcode.com/problem/longest-ab-substring/description
 * 
 * 样例
 * 给定s="ABAAABBBA"，返回8。
 * 解释：
 * 子串 s[0,7] 和子串 s[1,8] 满足条件，长度为 8。
 * 
 * 给定s="AAAAAA"，返回0。
 * 解释：
 * s 中除了空字串，不存在 'A' 和 'B' 数目相等的子串。
 */
package longest_ab_substring_1443;

public class Longest_Ab_Substring_1443 {

	/**
	 * @param S: a String consists of a and b
	 * @return: the longest of the longest string that meets the condition
	 */
	static public int getAns(String S) {
		// Write your code here
		int resultCnt = 0;
		for(int i = 0; i < S.length(); ++i) {
			int cntA = 0;
			int cntB = 0;
			for(int j = i; j < S.length(); ++j) {
				if(S.charAt(j) == 'A')
					++cntA;
				if(S.charAt(j) == 'B')
					++cntB;
				if((resultCnt < cntA + cntB) && (cntA == cntB)) {
					resultCnt = cntA + cntB;
				}
			}
		}
		return resultCnt;
	}

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.println(getAns("ABBABBABA"));
		System.out.println(getAns("ABAAABBBA"));
		System.out.println(getAns("BBABABBBABAB"));
	}

}
